In an object storage system including a plurality of servers (a server cluster), actual data (object) is transmitted between a user or a web application and each server via a network.
For example, in an object storage system illustrated in FIG. 37, the user transmits or receives actual data (object) to or from a server group including a plurality of servers 300A to 300D (four servers in FIG. 37) through a network 100 such as the Internet or a local area network (LAN) and a gateway 200. In the following description, when one of the servers is specified, one of reference numerals 300A to 300D is used, but when an arbitrary server is designated, a reference numeral 300 is used. As a storage place of actual data, a disk drive (hard disk drive (HDD)) (see reference numerals 303a to 303c in FIGS. 38 and 39) equipped in each server 300 is used.
At this time, as a counter-measure against a drive failure, a replica that is a replicated data piece of the same object is stored in HDDs of a plurality of different servers 300 in order to prevent an object from being lost when a drive failure occurs. A certain replica number of the same object stored in the object storage system is referred to as a “multiplicity” or “redundancy” of a replica. FIG. 37 illustrates an example in which a replica multiplicity is 3.
A gateway (front end server) 200 interposed between the network 100 and the server group generates a certain number (3 in FIG. 37) of replicas on an object when a write access of an object or the like is received from the user. Further, the gateway 200 distributedly arranges and stores the certain number of generated replicas in the different servers 300A to 300C.
Next, processing when a drive failure occurs in the object storage system illustrated in FIG. 37 will be described with reference to FIGS. 38 and 39. Each server 300 is connected to the LAN 100, and includes a central processing unit (CPU) 301, a memory 302, and a plurality of HDDs 303a to 303c (three HDDs in FIG. 38) as illustrated in FIGS. 38 and 39. The actual data (object) accessed by the user is stored in the HDDs 303a to 303c of each server 300. The memory 302 of each server 300 stores various kinds of data, programs, and the like for processing of the CPU 301, and temporarily stores an object to be stored in the HDDs 303a to 303c. In FIGS. 38 and 39, the gateway 200 illustrated in FIG. 37 is not illustrated.
First, three replicas (refer to a star in FIG. 38) of the same object are stored in the HDD 303a of the server 300A, the HDD 303b of the server 300B, and the HDD 303c of the server 300C, respectively, as illustrated in FIG. 38. At this time, the HDD 303a of the server 300A is assumed to be faulty as illustrated in FIG. 39. In this case, the object stored in the HDD 303a of the server 300A is lost, the replica number (multiplicity or redundancy) of the object in the system is reduced from 3 to 2. For this reason, the replica number of the object is restored to a certain number (here, 3) before the replica number of the object becomes zero (0).
In this regard, at least one of the server 300B and the server 300C having the replica of the object transmits the replica in the HDDs 303b or 303c to the server 300A via the LAN 100 as indicated by an arrow A1 or A2 in FIG. 39, and copies the replica of the object to the server 300A. As a result, the replica number of the object in the system is restored to the certain number, that is, 3. A specific means for selecting, for example, a server or a HDD in which a replica is to be transmitted at the time of the replica number restoration process depends on an implementation.
Here, the restoration process speed of the replica number is not allowed to exceed the band of the LAN 100. When the user writes or reads an object during the replica number restoration process, it competes with the restoration process. At this time, when the user process is given a priority, the speed of the restoration process decreases, and when the restoration process is given a priority, the speed of the user process decreases.
As a related art, a technique of performing a backup process from a disk to a tape via a storage area network (SAN) without using a LAN has been known (see JP 2002-007304A). However, this technique aims to simply increase the speed of the backup process from the disk to the tape, and does not related to a replica number restoration process in an environment in which a certain number of replicas (replicated data pieces) of the same data are distributedly arranged in a certain number of servers (HDDs).
In a storage system including a server cluster, a bandwidth of a LAN connecting servers with one another serves a bottle neck of processing performance. For this reason, when a drive failure occurs and so the replica number restoration process is performed using a LAN between servers as described above, the restoration process speed is limited. Thus, when a processing request of a system user becomes a high load during the restoration process, the restoration process hinders the user process, or vice versa.